Many computing systems are based on a client-server model and provide features and functionality through plug-in applications. Typically, when new software features become available, they are distributed as patches, upgrades or updates. These upgrades are generally installed through a relatively inefficient process that involves stopping the existing applications that may be executing on either the client or the server, performing the update, and then restarting the application. This process creates undesirable downtime and application unavailability.
Additionally, computing system manufacturers and/or distributors typically build and configure systems by cloning a disk or memory system that, upon boot up, will perform limited customizations. Generally, these systems must subsequently undergo more extensive customization and configuration at the customer site, including error-prone license key acquisition, rather than being ready to use “out of the box.” This is particularly true with systems that employ a redundant array of independent disks (RAID), encrypted file systems and/or trusted boot or execution environments.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.